package com.example.demo.controller;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.example.demo.entity.EntBaseInfo;
import com.example.demo.entity.dto.EntBaseInfoDTO;
import com.example.demo.entity.dto.EntNameInfoDTO;
import com.example.demo.entity.vo.TycSearchVO;
import com.example.demo.forest.TycClient;
import com.example.demo.service.EntBaseInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Nullable;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;


/**
 * @ClassName DemoController
 * @Author liupanpan
 * @Date 2024/12/31
 * @Description
 */
@Validated
@RestController
@RequestMapping("/demo")
@RequiredArgsConstructor
public class DemoController {
    @Resource
    EntBaseInfoService entBaseInfoService;


    //获取企业全部信息
    @GetMapping("/allList")
    public List<EntBaseInfo> getEntBaseInfoList() {
        List<EntBaseInfo> entBaseInfoList = entBaseInfoService.list();
        return entBaseInfoList;
    }

    //根据uscc列表查询企业信息
    @PostMapping("/getEntListByUscc")
    public List<EntBaseInfo> getEntListByUscc(@RequestBody @Valid EntBaseInfoDTO entBaseInfoDTO) {
        return entBaseInfoService.list(Wrappers.<EntBaseInfo>lambdaQuery().in(EntBaseInfo::getUscc, entBaseInfoDTO.getUscc()));
    }

    //根据客户名称添加客户信息
    @PostMapping("/addEntBaseInfo")
    public String addEntBaseInfoByName(@RequestBody @Valid EntNameInfoDTO entNameInfoDTO) {
        System.out.println("执行");
        System.out.println(entNameInfoDTO);
        //根据传入的客户名称关键字，调用天眼查接口，添加数据
        List<EntBaseInfo> entList = entBaseInfoService.getEntListByTycNameSearch(entNameInfoDTO.getCustomers());
        if (Objects.isNull(entList))
            return "查询结果为空";
        if (!entBaseInfoService.saveOrUpdateBatch(entList))
            return "添加失败";
        return "success";
    }
}
